﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace ManagedCardWriter
{
	public class Constants
	{
		public enum CardType : int { UserNamePassword, Kerberos, SelfIssued, Certificate, None }

		public class WSIdentity
		{
			public const string NamespacePrefix = "wsid";
			public const string Namespace = "http://schemas.xmlsoap.org/ws/2005/05/identity";
			public const string UriAttribute = "Uri";

			public class Elements
			{
				public const string InformationCard = "InformationCard";
				public const string InformationCardReference = "InformationCardReference";
				public const string CardId = "CardId";
				public const string CardVersion = "CardVersion";
				public const string CardName = "CardName";
				public const string CardImage = "CardImage";
				public const string MimeType = "MimeType";
				public const string Issuer = "Issuer";
				public const string TimeIssued = "TimeIssued";
				public const string TimeExpires = "TimeExpires";
				public const string TokenServiceList = "TokenServiceList";
				public const string TokenService = "TokenService";
				public const string UserCredential = "UserCredential";
				public const string DisplayCredentialHint = "DisplayCredentialHint";
				public const string UserNamePasswordCredential = "UsernamePasswordCredential";
				public const string UserName = "Username";
				public const string X509V3Credential = "X509V3Credential";
				public const string KerberosV5Credential = "KerberosV5Credential";
				public const string SelfIssuedCredential = "SelfIssuedCredential";
				public const string PrivatePersonalIdentifier = "PrivatePersonalIdentifier";
				public const string SupportedTokenTypeList = "SupportedTokenTypeList";
				public const string SupportedClaimTypeList = "SupportedClaimTypeList";
				public const string SupportedClaimType = "SupportedClaimType";
				public const string DisplayTag = "DisplayTag";
				public const string Description = "Description";
				public const string RequireAppliesTo = "RequireAppliesTo";
				public const string PrivacyNoticeAt = "PrivacyNotice";


			}
		}

		public class WSTrust
		{
			public const string NamespacePrefix = "wst";
			public const string Namespace = "http://schemas.xmlsoap.org/ws/2005/02/trust";
			public class Elements
			{
				public const string TokenType = "TokenType";
			}
		}

		public class XmlDSig
		{
			public const string NamespacePrefix = "dsig";
			public const string Namespace = "http://www.w3.org/2000/09/xmldsig#";
			public const string SchemaLocation = "http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd";
			public const string LocalSchemaLocation = "xmldsig-core-schema.xsd";
			public class Elements
			{
				public const string X509Certificate = "X509Certificate";
				public const string X509IssuerSerial = "X509IssuerSerial";
				public const string X509IssuerName = "X509IssuerName";
				public const string X509SerialNumber = "X509SerialNumber";
				public const string X509Data = "X509Data";
				public const string RSAKeyValue = "RSAKeyValue";
				public const string Signature = "Signature";
			}
		}
		public class WSSecurityExt
		{
			public const string NamespacePrefix = "wsse";
			public const string Namespace = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
			public const string SchemaLocation = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
			public const string LocalSchemaLocation = "oasis-200401-wss-wssecurity-secext-1.0.xsd";
			public const string Sha1ThumbrpintKeyTypeValue = "http://docs.oasis-open.org/wss/2004/xx/oasis-2004xx-wss-soap-message-security-1.1#ThumbprintSHA1";
			public class Elements
			{
				public const string KeyIdentifier = "KeyIdentifier";
				public const string ValueType = "ValueType";
			}
		}
		public class Xml
		{
			public const string NamespacePrefix = "xml";
			public const string Namespace = "http://www.w3.org/XML/1998/namespace";
			public const string Language = "lang";
		}

	}
}